package main

import (
	"fmt"
	"unicode/utf8"
)

func main() {
	s := "ABC我刚开始学go!"
	var runeS []rune = []rune(s)   // 打印 11，每个rune 是int32，4字节
	fmt.Println(len(runeS))

	var byteS []byte = []byte(s)  // 打印 21，中文字符集占三个字节
	fmt.Println(len(byteS))
	
	
	// 返回每个字符 和字符大小，英文1，中文3。 解码
	for len(byteS) > 0 {
		ch, size := utf8.DecodeRune(byteS)
		byteS = byteS[size:]
		fmt.Printf("%c ", ch)
	}

	// 结果 A B C 我 是 初 学 者 !
	
	// 3. 调用utf8这个库, 可以得到想要的长度 11
	fmt.Println(utf8.RuneCountInString(s))
}
